#ifndef __MC31xx_HAL_CONF_H
#define __MC31xx_HAL_CONF_H

#ifdef __cplusplus
extern "C" {
#endif


/*********************************     模块开关     ***************************************/
#define HAL_PRINTF_MODULE_ENABLE	//使用第三方printf模块
//未实装，暂时没啥用
#define HAL_GPIO_MODULE_ENABLE
#define HAL_MANAGER_MODULE_ENABLE
#define HAL_MUX_MODULE_ENABLE
//#define HAL_TIM_MODULE_ENABLE
#define HAL_GPCOM_MODULE_ENABLE
#define HAL_UART_MODULE_ENABLE
#define HAL_SPI_MODULE_ENABLE

/*********************************      配置项      ***************************************/

//#define USE_FULL_ASSERT

#define SYS_CORE_CLK			200000000U		//系统时钟，必须正确配置
#define SYS_CORE_CLK_MHZ		200				//系统时钟MHz
#define HAL_CFG_MUX_LIMIT		32          	//互斥锁数量
#define HAL_MANAGER_MAIN		thread3_main	//管理线程函数入口

/*********************************      include      ***************************************/
#ifdef HAL_PRINTF_MODULE_ENABLE
#include "printf.h"
#endif

#ifdef HAL_GPIO_MODULE_ENABLE
#include "mc31xx_hal_gpio.h"
#endif

#ifdef HAL_MANAGER_MODULE_ENABLE
#include "mc31xx_hal_manager.h"
#endif

#ifdef HAL_MUX_MODULE_ENABLE
#include "mc31xx_hal_mux.h"
#endif

#ifdef HAL_TIM_MODULE_ENABLE
#include "mc31xx_hal_tim.h"
#endif

#ifdef HAL_GPCOM_MODULE_ENABLE
#include "mc31xx_hal_gpcom.h"
#endif

#ifdef HAL_UART_MODULE_ENABLE
#include "mc31xx_hal_uart.h"
#endif

#ifdef HAL_SPI_MODULE_ENABLE
#include "mc31xx_hal_spi.h"
#endif

/*********************************      assert      ***************************************/
#ifdef  USE_FULL_ASSERT
#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
	int printf_(const char* format, ...);
	static inline void assert_failed(uint8_t* file, uint32_t line) {}// { printf_("[%s:%d][E]", file, line); while (1) {} }
#else
#define assert_param(expr) ((void)0U)
#endif /* USE_FULL_ASSERT */

#ifdef __cplusplus
}
#endif

#endif
